package com.excetop.xservlet.req.param;

/**
 * 文本(字符串)参数
 * @author xuZW
 *
 */
public class TextParam extends Param {

	/**
	 * 文本(字符串)参数值
	 */
	private String textValue;
	
	/**
	 * 文本(字符串)参数值数组
	 */
	private String[] textValueArray;

	public TextParam() {
	}
	
	public TextParam(String name, String[] textValueArray) {
		this(name, textValueArray, null);
	}
	
	public TextParam(String name, String[] textValueArray, String[] patternArray) {
		super(name, TYPE_TEXT, patternArray);
		if(null != textValueArray){
			this.textValueArray = textValueArray;
			if(textValueArray.length > 0){
				this.textValue = textValueArray[0];
			}
		}
	}
	
	/**
	 * 返回文本(字符串)参数值, 可能是 null
	 * @return
	 */
	public String getTextValue() {
		return textValue;
	}
	
	/**
	 * 返回去除左右空格后的文本(字符串)参数值, 可能是 null
	 * @return
	 */
	public String getTextValueTrimmed() {
		return null == textValue ? null : textValue.trim();
	}
	
	/**
	 * 返回去除全部空白字符后的文本(字符串)参数值, 可能是 null
	 * @return
	 */
	public String getTextValueWithoutSpaceCharacter() {
		return null == textValue ? null : textValue.replaceAll("\\s", "");
	}

	public void setTextValue(String textValue) {
		this.textValue = textValue;
	}

	/**
	 * 返回文本(字符串)数组参数值的引用, 可能是 null
	 * @return
	 */
	public String[] getTextValueArray() {
		return textValueArray;
	}
	
	/**
	 * 返回文本(字符串)数组参数值的拷贝, 可能是 null
	 * @return
	 */
	public String[] getTextValueArrayClone() {
		return null == textValueArray ? null : textValueArray.clone();
	}
	
	/**
	 * 返回文本(字符串)数组参数值的拷贝, 并去除左右空格, 可能是 null
	 * @return
	 */
	public String[] getTextValueArrayTrimmed() {
		String[] texts = getTextValueArrayClone();
		if(null != texts){
			for (int i = 0; i < texts.length; i++) {
				texts[i] = null == texts[i] ? null : texts[i].trim();
			}
		}
		return texts;
	}
	
	/**
	 * 返回文本(字符串)数组参数值的拷贝, 并去除全部空白字符, 可能是 null
	 * @return
	 */
	public String[] getTextValueArrayWithoutSpaceCharacter() {
		String[] texts = getTextValueArrayClone();
		if(null != texts){
			for (int i = 0; i < texts.length; i++) {
				texts[i] = null == texts[i] ? null : texts[i].replaceAll("\\s", "");
			}
		}
		return texts;
	}

	public void setTextValueArray(String[] textValueArray) {
		this.textValueArray = textValueArray;
	}

	@Override
	public boolean verifying() {
		boolean result = true;
		// TODO Auto-generated method stub
		return result;
	}
	
}
